package top.zhangjianyong.tools.service.mybatis;

import com.baomidou.mybatisplus.extension.service.IService;
import top.zhangjianyong.tools.entity.ETFData;

import java.time.LocalDate;
import java.util.List;
import java.util.Map;

@SuppressWarnings("unused")
// 定义一个接口，继承IService接口，用于操作ETFData实体类
public interface IETFDataService extends IService<ETFData> {
    // 根据code和valueDate查询一条ETFData记录
    ETFData queryOne(String code, LocalDate valueDate);

    // 根据code查询最后一条ETFData记录
    ETFData lastOne(String code);

    // 根据code查询第一条ETFData记录
    ETFData firstOne(String code);

    // 根据code查询按日期排序的ETFData记录列表
    List<ETFData> listOrderByDate(String code);

    // 查询所有ETFData记录
    List<Map<String, String>> listEtf();

    // 根据code查询ETFData记录
    List<Map<String, String>> search(String code);


    // 根据code和date查询date之后的ETFData记录列表
    List<ETFData> listAfterDate(String code, LocalDate date);

    /**
     * 存在当天数据返回true
     */
    // 根据code和date查询ETFData记录，如果存在返回true，否则返回false
    boolean existByCodeAndDate(String code, LocalDate date);

    // 根据code和start、end查询ETFData记录列表
    List<ETFData> listBetweenDate(String code, LocalDate start, LocalDate end);

    // 根据code查询ETFData记录列表
    List<ETFData> listByCode(String code);

    List<ETFData> listLastLimit(String code, long days);
}
